export interface ISelectOption {
  label: string
  value: any
  children?: ISelectOption[]
}

type ItemType =
  | 'input'
  | 'password'
  | 'select'
  | 'datepicker'
  | 'cascader'
  | 'textarea'
  | 'upload'
  | 'phone'

export interface IFormItem {
  field: string
  type: ItemType
  label?: string
  placeHolder?: string
  rules?: any[]
  options?: ISelectOption[]
  otherOption?: any
  defaultValue?: any
  isHidden?: boolean
  slotName?: string
  prefixIcon?: string
}

export interface IForm {
  title?: string
  formItems?: IFormItem[]
  labelWidth?: string
  itemStyle: any
  colLayout: any
}
